---
title: 레거시 플래그
i18nReady: true
---

일부 사용자들의 Astro 버전 간 마이그레이션을 돕기 위해, 때때로 우리는 `legacy` 플래그를 도입합니다.

이러한 플래그를 통해 최신 버전의 Astro에서 더 이상 사용되지 않거나 구식이 된 동작을 선택적으로 사용할 수 있으며, 프로젝트 코드를 완전히 업데이트할 수 있을 때까지 새로운 Astro 릴리스의 이점을 계속해서 활용할 수 있습니다.

import Since from '~/components/Since.astro'

## Collections

<p>

**타입:** `boolean`<br />
**기본값:** `false`<br />
<Since v="5.0.0" />
</p>

콘텐츠 컬렉션에 대한 레거시 동작 활성화 (Astro v2부터 v4까지 사용됨)

```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
export default defineConfig({
  legacy: {
    collections: true
  }
});
```

활성화되면, `data`와 `content` 컬렉션(만)이 레거시 콘텐츠 컬렉션 구현을 사용하여 처리됩니다. 대신 `loader`가 있는 컬렉션(만)은 계속해서 콘텐츠 레이어 API를 사용합니다. 두 종류의 컬렉션은 각각의 구현을 사용하여 동일한 프로젝트에 존재할 수 있습니다.

 다음과 같은 제한 사항이 계속 존재합니다:

- 모든 레거시(`type: 'content'` 또는 `type: 'data'`) 컬렉션은 계속 `src/content/` 디렉터리에 위치해야 합니다.
- 이러한 레거시 컬렉션은 암시적으로 `glob()` 로더를 사용하도록 변환되지 않으며, 대신 레거시 코드에 의해 처리됩니다.
- 콘텐츠 레이어 API를 사용하는 컬렉션(`loader`가 정의된)은 `src/content/`에서는 금지되지만, 프로젝트의 다른 곳 어디에서나 존재할 수 있습니다.

이 플래그를 제거하고 레거시 컬렉션을 새로운 콘텐츠 레이어 API로 마이그레이션할 준비가 되면, `src/content/`에서 컬렉션으로 계속 사용하고자 하는 모든 디렉터리에 대해 컬렉션을 정의해야 합니다. 빈 컬렉션을 선언하는 것만으로도 충분하며, Astro는 레거시 컬렉션에 대한 적절한 정의를 암시적으로 생성할 것입니다.

```js
// src/content/config.ts
import { defineCollection, z } from 'astro:content';

const blog = defineCollection({ })
 
export const collections = { blog };
```
